#setting path and wd
getwd()
## [1] "/Users/efegulkan/R_files/r4ds_final-main"
#libraries
library(tidyverse)
library(readxl)
library(kableExtra)
library(scales)
#Importing data
dataset <- read_xlsx("xutum_data.xlsx")
dataset[,c(4:11)] <- sapply(dataset[,c(4:11)], as.numeric)
dataset$Dates <- as.character(dataset$Dates)
#Dividing by sectors and years
dataset %>%
group_by(Dates)%>%
group_split(Dates)%>%
set_names((nm = unique(dataset$Dates))) -> yearly
dataset %>%
group_by(Sector)%>%
group_split(Sector)%>%
set_names((nm = sort(unique(dataset$Sector)))) -> sectorly
##General Summaries
yearly_summary <- dataset%>%
group_by(Dates)%>%
summarise(avg_emp = round(mean(`Number of Employees`, na.rm = T),2),
sd_emp = round(sd(`Number of Employees`,na.rm=T),2),
avg_exp_per = mean(`Personnel Expense Per Employee`, na.rm = T),
avg_profit = mean(`Profit Margin`, na.rm = T),
avg_sales = mean(Sales, na.rm = T))%>%
mutate(emp_index = avg_emp/first(avg_emp),
exp_index = avg_exp_per/first(avg_exp_per),
profit_index = avg_profit/first(avg_profit),
sales_index = avg_sales/first(avg_sales))
sectorly_summary <- dataset%>%
group_by(Sector)%>%
summarise(avg_emp = round(mean(`Number of Employees`, na.rm = T),2),
sd_emp = round(sd(`Number of Employees`,na.rm=T),2),
avg_exp_per = round(mean(`Personnel Expense Per Employee`, na.rm = T),2),
avg_profit = round(mean(`Profit Margin`, na.rm = T),2),
avg_sales = round(mean(Sales, na.rm = T),2))
all_summary <- dataset%>%
group_by(Sector, Dates)%>%
summarise(avg_emp = round(mean(`Number of Employees`, na.rm = T),2),
avg_exp_per = mean(`Personnel Expense Per Employee`, na.rm = T),
avg_profit = mean(`Profit Margin`, na.rm = T),
avg_sales = mean(Sales, na.rm = T),
avg_market_cap = mean(`Market Cap`, na.rm = T))
namean <- function(data){
mean(data, na.rm = T)
}
difference <- dataset%>%
filter(Dates %in% c("2015-12-31","2021-12-31"))%>%
pivot_wider(id_cols = Sector,
values_from = c("Number of Employees","Sales","Profit Margin"),
names_from = Dates,
values_fn = namean)
difference <- difference %>%
mutate(emp_change = 100*(`Number of Employees_2021-12-31`- `Number of Employees_2015-12-31`)/`Number of Employees_2015-12-31`,
sales_change = 100*(`Sales_2021-12-31`- `Sales_2015-12-31`)/`Sales_2015-12-31`,
profit_change = 100*(`Profit Margin_2021-12-31`- `Profit Margin_2015-12-31`)/`Profit Margin_2015-12-31`)
unl <- function(data){
length(unique(data))
}
sector_firms <- aggregate(dataset$Firm, by = list(dataset$Sector),FUN = unl)
dates_firms <- aggregate(dataset$Firm, by = list(dataset$Dates), FUN = unl)
no_firms <- dataset%>%
group_by(Sector) %>%
summarise(number = length(unique(Firm)))
ratio <- prop.table(no_firms$number)*100
ratio_table <- cbind(no_firms, ratio)
dates_firms %>%
kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover"))
| Group.1 | x |
|---|---|
| 2015-12-31 | 406 |
| 2016-12-31 | 408 |
| 2017-12-31 | 408 |
| 2018-12-31 | 404 |
| 2019-12-31 | 397 |
| 2020-12-31 | 393 |
| 2021-12-31 | 369 |
yearly_summary%>%
kbl()%>%
kable_styling(bootstrap_options = c("striped", "hover"))
| Dates | avg_emp | sd_emp | avg_exp_per | avg_profit | avg_sales | emp_index | exp_index | profit_index | sales_index |
|---|---|---|---|---|---|---|---|---|---|
| 2015-12-31 | 2716.92 | 8141.46 | 140470.7 | -35.90926 | 2321.607 | 1.0000000 | 1.000000 | 1.0000000 | 1.000000 |
| 2016-12-31 | 2686.43 | 8157.28 | 144148.6 | -563.24627 | 2494.706 | 0.9887777 | 1.026183 | 15.6852647 | 1.074560 |
| 2017-12-31 | 2623.63 | 7995.05 | 143427.6 | 1489.53624 | 3038.747 | 0.9656633 | 1.021050 | -41.4805588 | 1.308898 |
| 2018-12-31 | 2442.46 | 7803.98 | 166893.7 | 19.46442 | 3815.813 | 0.8989812 | 1.188103 | -0.5420444 | 1.643609 |
| 2019-12-31 | 2731.63 | 8504.67 | 179087.8 | -87.74947 | 4796.409 | 1.0054142 | 1.274912 | 2.4436444 | 2.065987 |
| 2020-12-31 | 2837.01 | 9127.57 | 216933.8 | 98.68740 | 4968.918 | 1.0442008 | 1.544335 | -2.7482435 | 2.140293 |
| 2021-12-31 | 3097.61 | 9837.13 | 268444.2 | 201.41748 | 8248.793 | 1.1401182 | 1.911034 | -5.6090676 | 3.553053 |
sectorly_summary%>%
kbl()%>%
kable_styling(bootstrap_options = c("striped", "hover"))
| Sector | avg_emp | sd_emp | avg_exp_per | avg_profit | avg_sales |
|---|---|---|---|---|---|
| ACCOMMODATION AND FOOD SERVICE ACTIVITIES | 1677.33 | 3127.80 | 93013.90 | 36.38 | 622.86 |
| ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES | 1070.46 | 3016.71 | 63811.36 | 38.71 | 260.37 |
| AGRICULTURE, FORESTRY AND FISHING | 97.00 | 52.64 | 34930.53 | 14.32 | 82.72 |
| ARTS, ENTERTAINMENT AND RECREATION | 347.57 | 196.51 | 902135.75 | -42.81 | 483.29 |
| CONSTRUCTION | 3857.28 | 6927.34 | 66777.53 | -16.31 | 2072.65 |
| ELECTRICITY, GAS, STEAM AND AIR CONDITIONING SUPPLY | 1273.78 | 2707.24 | 108117.21 | 4531.89 | 3232.46 |
| FINANCIAL AND INSURANCE ACTIVITIES | 3381.09 | 9927.29 | 488609.10 | -183.11 | 9801.18 |
| HUMAN HEALTH AND SOCIAL WORK ACTIVITIES | 5654.12 | 5255.45 | 75939.43 | 4.99 | 1424.09 |
| INFORMATION AND COMMUNICATION | 3445.77 | 8700.42 | 82711.22 | 14.69 | 2939.29 |
| MANUFACTURING | 2236.90 | 8238.15 | 118916.52 | 3.26 | 3437.30 |
| MINING AND QUARRYING | 1341.76 | 964.06 | 70116.21 | 19.15 | 1316.54 |
| PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES | 218.16 | 307.20 | 110467.66 | 16.48 | 354.44 |
| REAL ESTATE ACTIVITIES | 85.58 | 152.29 | 192809.23 | 297.96 | 339.15 |
| TRANSPORTATION AND STORAGE | 8153.67 | 10698.19 | 106451.65 | 30.83 | 8561.95 |
| WATER SUPPLY; SEWERAGE, WASTE MANAGEMENT AND REMEDIATION ACTIVITIES | 243.50 | 134.87 | 76247.41 | 6.30 | 203.57 |
| WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES | 6971.22 | 14153.02 | 103512.40 | 338.67 | 6776.07 |
difference%>%
kbl()%>%
kable_styling(bootstrap_options = c("striped", "hover"))
| Sector | Number of Employees_2015-12-31 | Number of Employees_2021-12-31 | Sales_2015-12-31 | Sales_2021-12-31 | Profit Margin_2015-12-31 | Profit Margin_2021-12-31 | emp_change | sales_change | profit_change |
|---|---|---|---|---|---|---|---|---|---|
| MANUFACTURING | 2334.08163 | 2445.61905 | 1715.5819 | 7307.73299 | -22.1083567 | 12.635696 | 4.778642 | 325.96235 | -157.15349 |
| TRANSPORTATION AND STORAGE | 8606.12500 | 7544.50000 | 5292.4500 | 13528.52310 | 10.9452714 | 82.132790 | -12.335691 | 155.61929 | 650.39519 |
| CONSTRUCTION | 4910.11111 | 3178.60000 | 1633.8650 | 3407.79404 | -0.5479364 | 51.594880 | -35.264194 | 108.57256 | -9516.21754 |
| FINANCIAL AND INSURANCE ACTIVITIES | 3308.76190 | 3916.77049 | 5679.7234 | 17741.53824 | -165.0489377 | 37.848705 | 18.375713 | 212.36624 | -122.93181 |
| WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES | 4315.16000 | 10265.37500 | 2943.5719 | 14215.83481 | 4.4560370 | 2258.544483 | 137.890947 | 382.94505 | 50585.04738 |
| INFORMATION AND COMMUNICATION | 5391.50000 | 3159.15789 | 2585.6388 | 4196.05575 | 10.3985909 | 27.263210 | -41.404843 | 62.28314 | 162.18178 |
| ELECTRICITY, GAS, STEAM AND AIR CONDITIONING SUPPLY | 343.00000 | 1397.15385 | 1656.6895 | 5502.32319 | -532.5148444 | 1.134815 | 307.333483 | 232.12761 | -100.21310 |
| MINING AND QUARRYING | 470.00000 | 1731.83333 | 611.2890 | 2478.44912 | 7.0582600 | 33.787950 | 268.475177 | 305.44638 | 378.70084 |
| PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES | 299.50000 | 116.00000 | 189.7816 | 424.92770 | 2.9051500 | 40.632667 | -61.268781 | 123.90359 | 1298.64264 |
| REAL ESTATE ACTIVITIES | 36.08696 | 95.07143 | 134.5997 | 618.05117 | 171.9876074 | 415.982448 | 163.450947 | 359.17726 | 141.86769 |
| ACCOMMODATION AND FOOD SERVICE ACTIVITIES | 1743.87500 | 2041.71429 | 386.6231 | 1416.87349 | 5.4703333 | 159.891514 | 17.079165 | 266.47410 | 2822.88430 |
| HUMAN HEALTH AND SOCIAL WORK ACTIVITIES | 9224.00000 | 5065.66667 | 992.4818 | 2139.72520 | 0.1236000 | 10.256400 | -45.081671 | 115.59339 | 8198.05825 |
| ARTS, ENTERTAINMENT AND RECREATION | 328.00000 | 368.80000 | 316.4248 | 835.58218 | -31.5968000 | -81.926700 | 12.439024 | 164.06978 | 159.28797 |
| WATER SUPPLY; SEWERAGE, WASTE MANAGEMENT AND REMEDIATION ACTIVITIES | NaN | 428.00000 | NaN | 427.70380 | NaN | 0.885300 | NaN | NaN | NaN |
| ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES | 2152.16667 | 41.75000 | 301.2063 | 74.46788 | 16.2465667 | 255.979000 | -98.060095 | -75.27678 | 1475.58828 |
| AGRICULTURE, FORESTRY AND FISHING | 50.00000 | 111.50000 | 13.3176 | 171.18120 | 13.7284000 | 17.830750 | 123.000000 | 1185.37574 | 29.88221 |
summary(dataset[,4:11])%>%
kbl()%>%
kable_styling(bootstrap_options = c("striped", "hover"))
| Number of Employees | EBITDA | Profit Margin | Sales | Market Cap | Personnel Expense (Millions) | Personnel Expense Per Employee | Price/Earnings | |
|---|---|---|---|---|---|---|---|---|
| Min. : 1.0 | Min. : -426.89 | Min. :-181191.9 | Min. : -10.8 | Min. : 3.3 | Min. : 0.000 | Min. : 0 | Min. : 0.467 | |
| 1st Qu.: 66.5 | 1st Qu.: 7.48 | 1st Qu.: 0.5 | 1st Qu.: 71.9 | 1st Qu.: 124.9 | 1st Qu.: 4.228 | 1st Qu.: 45166 | 1st Qu.: 6.855 | |
| Median : 319.0 | Median : 43.81 | Median : 6.4 | Median : 321.9 | Median : 456.4 | Median : 22.405 | Median : 83816 | Median : 11.942 | |
| Mean : 2735.7 | Mean : 486.41 | Mean : 159.0 | Mean : 4278.5 | Mean : 3011.6 | Mean : 306.784 | Mean : 182747 | Mean : 48.585 | |
| 3rd Qu.: 1179.0 | 3rd Qu.: 195.03 | 3rd Qu.: 18.8 | 3rd Qu.: 1445.6 | 3rd Qu.: 1862.2 | 3rd Qu.: 107.062 | 3rd Qu.: 145286 | 3rd Qu.: 28.651 | |
| Max. :105908.0 | Max. :43946.57 | Max. : 545549.8 | Max. :346688.7 | Max. :98560.0 | Max. :17379.680 | Max. :18201608 | Max. :11194.969 | |
| NA’s :290 | NA’s :308 | NA’s :190 | NA’s :172 | NA’s :426 | NA’s :261 | NA’s :368 | NA’s :669 |
ratio_table%>%
kbl()%>%
kable_styling(bootstrap_options = c("striped", "hover"))
| Sector | number | ratio |
|---|---|---|
| ACCOMMODATION AND FOOD SERVICE ACTIVITIES | 9 | 2.2058824 |
| ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES | 8 | 1.9607843 |
| AGRICULTURE, FORESTRY AND FISHING | 2 | 0.4901961 |
| ARTS, ENTERTAINMENT AND RECREATION | 5 | 1.2254902 |
| CONSTRUCTION | 15 | 3.6764706 |
| ELECTRICITY, GAS, STEAM AND AIR CONDITIONING SUPPLY | 14 | 3.4313725 |
| FINANCIAL AND INSURANCE ACTIVITIES | 64 | 15.6862745 |
| HUMAN HEALTH AND SOCIAL WORK ACTIVITIES | 3 | 0.7352941 |
| INFORMATION AND COMMUNICATION | 20 | 4.9019608 |
| MANUFACTURING | 186 | 45.5882353 |
| MINING AND QUARRYING | 6 | 1.4705882 |
| PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES | 4 | 0.9803922 |
| REAL ESTATE ACTIVITIES | 32 | 7.8431373 |
| TRANSPORTATION AND STORAGE | 10 | 2.4509804 |
| WATER SUPPLY; SEWERAGE, WASTE MANAGEMENT AND REMEDIATION ACTIVITIES | 1 | 0.2450980 |
| WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES | 29 | 7.1078431 |
#Comparasion of personnel expenses and employment
ylim.emp <- c(1000, 4000)
ylim.expens <- c(100000,300000)
secaxexps <- diff(ylim.emp)/diff(ylim.expens)
secax_exps <- ylim.emp[1] - secaxexps*ylim.expens[1]
ylim.prof <- c(-600,1800)
secaxprof <- diff(ylim.emp)/diff(ylim.prof)
secax_prof <- ylim.emp[1] - secaxprof*ylim.prof[1]
exp_vs_emp <- ggplot(yearly_summary, aes(x = Dates, group = 1))+
geom_line(aes(y = avg_emp))+
geom_line(aes(y = secax_exps+avg_exp_per*secaxexps), color = "red")+
geom_point(aes(y = avg_emp),color = "navy")+
geom_point(aes(y = secax_exps+avg_exp_per*secaxexps), color = "navy")+
scale_y_continuous("Average Employee", sec.axis = sec_axis(~ (. - secax_exps)/secaxexps, name = "Average Expense per Employee"))+
theme(axis.line.y.right = element_line(color = "red"),
axis.ticks.y.right = element_line(color = "red"),
axis.text.y.right = element_text(color = "red"))+
labs(x = "Years")
profit_emp <- ggplot(yearly_summary, aes(x = Dates, group = 1))+
geom_line(aes(y = avg_emp))+
geom_line(aes(y = secax_prof+avg_profit*secaxprof), color = "red")+
geom_point(aes(y = avg_emp),color = "navy")+
geom_point(aes(y = secax_prof+avg_profit*secaxprof), color = "navy")+
scale_y_continuous("Average Employee", sec.axis = sec_axis(~ (. - secax_prof)/secaxprof, name = "Average Profit"))+
theme(axis.line.y.right = element_line(color = "red"),
axis.ticks.y.right = element_line(color = "red"),
axis.text.y.right = element_text(color = "red"))+
labs(x = "Years",y="Average Profit Margin",title = "Change in Average Profit Margins of BIST TUM Firms",caption = "Source: Bloomberg")
emp_box <- ggplot(dataset, aes(x = Sector))+
geom_boxplot(aes(y = `Number of Employees`, color = Dates),show.legend = T, outlier.alpha = 0.2)+
lims(y = c(0,30000))+
scale_x_discrete(labels = abbreviate)+
theme(axis.text.x = element_text(size= 8,angle = 45,hjust = 1, vjust = 1))
exp_emp_index <- ggplot(yearly_summary, aes(x = Dates, group = 1))+
geom_line(aes(y = emp_index, color = "Employee Index"))+
geom_line(aes(y=exp_index, color = "Average Personnel Expense Index"))+
geom_point(aes(y = emp_index))+
geom_point(aes(y = exp_index))+
theme(legend.position = "bottom")+
scale_color_manual(name = "Index",
values = c("red","black"),
labels = c("Average Personnel Expense Index","Employee Index"))+
labs(x = "Years",
y = "Index",
title = "Index comparasion of Employee Number and Average Personnel Expense",caption = "Source: Bloomberg")
sales_change <- ggplot(yearly_summary, aes(x = Dates, group = 1))+
geom_line(aes(y = avg_sales))+
geom_point(aes(y = avg_sales))+
labs(x = "Years",y="Average Sales (thousand)",title = "Change in Average Sales of BIST TUM Firms",caption = "Source: Bloomberg")
profit_emp
exp_emp_index
sales_change
#Comparasion of Yearly Average Number of Employee by Sector
sectors1 <- c("ACCOMMODATION AND FOOD SERVICE ACTIVITIES","ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES","AGRICULTURE, FORESTRY AND FISHING","ARTS, ENTERTAINMENT AND RECREATION","CONSTRUCTION","ELECTRICITY, GAS, STEAM AND AIR CONDITIONING SUPPLY","FINANCIAL AND INSURANCE ACTIVITIES","HUMAN HEALTH AND SOCIAL WORK ACTIVITIES")
sectors2 <- c("INFORMATION AND COMMUNICATION","MANUFACTURING","MINING AND QUARRYING","PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES","REAL ESTATE ACTIVITIES","TRANSPORTATION AND STORAGE","WATER SUPPLY; SEWERAGE, WASTE MANAGEMENT AND REMEDIATION ACTIVITIES","WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES")
sec_emp1 <- ggplot(all_summary%>%
filter(avg_market_cap<=1698.35))+
geom_point(aes(x= Dates,
y = avg_emp,
color = Sector),show.legend = T)+
geom_line(aes(x= Dates,
y = avg_emp,
color = Sector, group = Sector),show.legend = T)+
theme(axis.text.x = element_text(angle = 15),
legend.text = element_text(size = 8,vjust = 1, hjust = 0.5),
legend.position = "right",
legend.key.width = unit(0.1, "cm"),
legend.key.size = unit(0.1, "cm"),
legend.spacing = unit(0.01, "cm"))+
scale_colour_viridis_d(option = "turbo",
end = 1,
labels = scales::label_wrap(25),
guide = guide_legend(nrow = 16))+
lims(y= c(-1000,13000))+
ylab("Average Number of Employee")+
labs(title = "Change of yearly average Number of Employees",
subtitle = "Average Market Cap of Sector lower than the median 1.6 billion liras")
sec_emp2 <- ggplot(all_summary%>%
filter(1698.35<avg_market_cap))+
geom_point(aes(x= Dates,
y = avg_emp,
color = Sector),show.legend = T)+
geom_line(aes(x= Dates,
y = avg_emp,
color = Sector, group = Sector),show.legend = T)+
theme(axis.text.x = element_text(angle = 15),
legend.text = element_text(size = 8,vjust = 1, hjust = 0.5),
legend.position = "right",
legend.key.width = unit(0.1, "cm"),
legend.key.size = unit(0.1, "cm"),
legend.spacing = unit(0.01, "cm"))+
scale_colour_viridis_d(option = "turbo",
end = 1,
labels = scales::label_wrap(25),
guide = guide_legend(nrow = 16))+
lims(y= c(-1000,13000))+
ylab("Average Number of Employee")+
labs(title = "Change of yearly average Number of Employees",
subtitle = "Average Market Cap of Sector higher than the median 1.6 billion liras")
sales_avg_s1 <- ggplot(all_summary %>%
filter(Sector %in% sectors1))+
geom_point(aes(x= Dates,
y = log(avg_sales),
color = Sector),show.legend = T)+
geom_line(aes(x= Dates,
y = log(avg_sales),
color = Sector, group = Sector),show.legend = T)+
theme(axis.text.x = element_text(angle = 15))+
scale_colour_viridis_d(option = "turbo",
end = 1,
labels = scales::label_wrap(25),
guide = guide_legend(nrow = 8))+
labs(x = "Years",y = "Log of Average Sales",title = "Change of Average Sales by Sectors over Years",subtitle = "Alphabetical First 8 Sectors",caption = "Source: Bloomberg")
sales_avg_s2 <- ggplot(all_summary %>%
filter(Sector %in% sectors2))+
geom_point(aes(x= Dates,
y = log(avg_sales),
color = Sector),show.legend = T)+
geom_line(aes(x= Dates,
y = log(avg_sales),
color = Sector, group = Sector),show.legend = T)+
theme(axis.text.x = element_text(angle = 15))+
scale_colour_viridis_d(option = "turbo",
end = 1,
labels = scales::label_wrap(25),
guide = guide_legend(nrow = 8))+
labs(x = "Years",y = "Log of Average Sales",title = "Change of Average Sales by Sectors over Years",subtitle = "Alphabetical Latter 8 Sectors",caption = "Source: Bloomberg")
prof_date_s1 <- ggplot(all_summary %>%
filter(!Sector %in% "ELECTRICITY, GAS, STEAM AND AIR CONDITIONING SUPPLY" & Sector %in% sectors1))+
geom_point(aes(x= Dates,
y = (avg_profit),
color = Sector),show.legend = T)+
geom_line(aes(x= Dates,
y = (avg_profit),
color = Sector, group = Sector),show.legend = T)+
theme(axis.text.x = element_text(angle = 15),
legend.text = element_text(size = 8,vjust = 0.5, hjust = 0))+
scale_colour_viridis_d(option = "turbo",
labels = scales::label_wrap(12),
guide = guide_legend(nrow = 8))+
labs(title = "Change of Average Profit Margins by Sectors over Years",subtitle = "Alphabetical First 8 Sectors & Outlier Electricity,Gas,Steam and AC Supply Excluded",caption = "Source: Bloomberg",x = "Years",y="Average Profit Margin")+
lims(y = c(-100,200))
prof_date_s2 <- ggplot(all_summary %>%
filter( Sector %in% sectors2))+
geom_point(aes(x= Dates,
y = (avg_profit),
color = Sector),show.legend = T)+
geom_line(aes(x= Dates,
y = (avg_profit),
color = Sector, group = Sector),show.legend = T)+
theme(axis.text.x = element_text(angle = 15),
legend.text = element_text(size = 8,vjust = 0.5, hjust = 0))+
scale_colour_viridis_d(option = "turbo",
labels = scales::label_wrap(20),
guide = guide_legend(nrow = 8))+
lims(y=c(-50,200))+
labs(title = "Change of Average Profit Margins by Sectors over Years",subtitle = "Alphabetical Latter 8 Sectors",caption = "Source: Bloomberg",x = "Years",y="Average Profit Margin")
sec_expense_out <- ggplot(all_summary %>%
filter(Sector %in% c("FINANCIAL AND INSURANCE ACTIVITIES","ARTS, ENTERTAINMENT AND RECREATION")))+
geom_point(aes(x= Dates,
y = avg_exp_per,
color = Sector),show.legend = T)+
geom_line(aes(x= Dates,
y = avg_exp_per,
color = Sector, group = Sector),show.legend = T)+
theme(axis.text.x = element_text(angle = 15))+
scale_colour_viridis_d(option = "turbo",
labels = scales::label_wrap(5),
guide = guide_legend(nrow = 2))+
labs(x = "Years",y="Average Personnel Expense",title = "Average Personnel Expense by Sectors over Years",subtitle = "Outlier Sectors",caption = "Source: Bloomberg")
sec_expense_s1 <- ggplot(all_summary %>%
filter(!Sector %in% c("FINANCIAL AND INSURANCE ACTIVITIES","ARTS, ENTERTAINMENT AND RECREATION") & Sector %in% sectors1))+
geom_point(aes(x= Dates,
y = avg_exp_per,
color = Sector),show.legend = T)+
geom_line(aes(x= Dates,
y = avg_exp_per,
color = Sector, group = Sector),show.legend = T)+
theme(axis.text.x = element_text(angle = 15),
legend.text = element_text(size = 8,vjust = 0.5, hjust = 0),
legend.position = "right",
legend.key.width = unit(0.3, "cm"),
legend.key.size = unit(0.8, "cm"),
legend.spacing = unit(2, "cm"))+
scale_colour_viridis_d(option = "turbo",
labels = scales::label_wrap(12),
guide = guide_legend(nrow = 8))+
labs(x = "Years",y="Average Personnel Expense",title = "Average Personnel Expense by Sectors over Years",subtitle = "Alphabetical First 8 Sector excluding Outliers",caption = "Source: Bloomberg")
sec_expense_s2 <- ggplot(all_summary %>%
filter(!Sector %in% c("FINANCIAL AND INSURANCE ACTIVITIES","ARTS, ENTERTAINMENT AND RECREATION") & Sector %in% sectors2))+
geom_point(aes(x= Dates,
y = avg_exp_per,
color = Sector),show.legend = T)+
geom_line(aes(x= Dates,
y = avg_exp_per,
color = Sector, group = Sector),show.legend = T)+
theme(axis.text.x = element_text(angle = 15),
legend.text = element_text(size = 8,vjust = 0.5, hjust = 0),
legend.position = "right",
legend.key.width = unit(0.3, "cm"),
legend.key.size = unit(0.8, "cm"),
legend.spacing = unit(2, "cm"))+
scale_colour_viridis_d(option = "turbo",
labels = scales::label_wrap(15),
guide = guide_legend(nrow = 8))+
labs(x = "Years",y="Average Personnel Expense",title = "Average Personnel Expense by Sectors over Years",subtitle = "Alphabetical Latter 8 Sector excluding Outliers",caption = "Source: Bloomberg")
sec_emp1
sec_emp2
sales_avg_s1
sales_avg_s2
prof_date_s1
prof_date_s2
sec_expense_out
sec_expense_s1
sec_expense_s2
#Function for scatter plots of sales and profit
profit_emp_point <- function(date,emp_int){
ggplot(dataset%>%
filter(Dates %in% date),
aes(x = `Number of Employees`,
y = `Profit Margin`))+
geom_point(aes(color = Sector))+
theme(
legend.text = element_text(size = 6,vjust = 0.5, hjust = 0.5, margin = margin(r = 11)),
legend.position = "right",
legend.key.width = unit(0.1, "cm"),
legend.key.size = unit(0.1, "cm"),
legend.spacing = unit(0.01, "cm"))+
scale_colour_viridis_d(option = "turbo",
end = 1,
labels = scales::label_wrap(20),
guide = guide_legend(nrow = 16))+
lims(x = emp_int,
y = c(-50,200))+
labs(title = "Profit - No. of Employee",
subtitle = date)
}
sales_emp_point <- function(date,emp_int){
ggplot(dataset%>%
filter(Dates %in% date),
aes(x = `Number of Employees`,
y = log(Sales)))+
geom_point(aes(color = Sector))+
theme(
legend.text = element_text(size = 6,vjust = 0.5, hjust = 0.5, margin = margin(r = 11)),
legend.position = "right",
legend.key.width = unit(0.1, "cm"),
legend.key.size = unit(0.1, "cm"),
legend.spacing = unit(0.01, "cm"))+
scale_colour_viridis_d(option = "turbo",
end = 1,
labels = scales::label_wrap(20),
guide = guide_legend(nrow = 16))+
lims(x = emp_int)+
labs(title = "Sales - No. of Employee",
subtitle = date)+
ylab("log of Sales (thousand)")
}
##Yearly profit plots
profit_emp_point("2021-12-31",c(10,1000))+
geom_smooth(aes(x =`Number of Employees`,
y = `Profit Margin`),
se =T, color = "navy")
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
profit_emp_point("2020-12-31",c(10,1000))+
geom_smooth(aes(x =`Number of Employees`,
y = `Profit Margin`),
se =T, color = "navy")
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
profit_emp_point("2020-12-31",c(10,100))+
geom_smooth(aes(x =`Number of Employees`,
y = `Profit Margin`),
se =T, color = "navy")
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
sales_emp_point("2019-12-31",c(10,2000))+
geom_smooth(aes(x =`Number of Employees`,
y = log(Sales)),
color = "#526788",se =T)
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'